import os
import zipfile
import pandas as pd

# 设置包含ZIP文件的目录
work_dir = r'C:\Users\A0080437\Desktop\第三部分 16台 五得力9月17日收到数据 （其中3台无数据）'

# 遍历目录下的所有文件
for item in os.listdir(work_dir):
    if item.endswith('.zip'):
        zip_path = os.path.join(work_dir, item)
        with zipfile.ZipFile(zip_path, 'r') as zip_ref:
            # 遍历ZIP文件中的所有内容
            for file_info in zip_ref.infolist():
                # 检查是否是Excel文件
                if file_info.filename.endswith('.xlsx') or file_info.filename.endswith('.xls'):
                    # 解压缩Excel文件
                    excel_path = os.path.join(work_dir, file_info.filename)
                    zip_ref.extract(file_info, work_dir)

                    # 使用pandas检查Excel文件的工作表数量
                    xls = pd.ExcelFile(excel_path)
                    sheet_names = xls.sheet_names
                    xls.close()  # 关闭文件句柄

                    if len(sheet_names) >= 3:
                        # 如果工作表数量大于等于3，重命名文件
                        new_excel_path = os.path.join(work_dir, os.path.splitext(item)[0] + '.xlsx')
                        os.rename(excel_path, new_excel_path)
                        print(f'Extracted and renamed: {new_excel_path}')
                    else:
                        # 如果工作表数量小于3，删除解压缩的文件
                        os.remove(excel_path)
                else:
                    # 如果不是Excel文件，则跳过
                    continue
